This invention relates generally to writing media computer applications, and more particularly to designing and implementing interactive soundscapes.
The demand for sophisticated interactive audio designs in interactive media applications today is great, for example, in the area of computer games. However, there is a lack of skilled developers who also have strong sound design skills. To address this deficiency, many development groups use the services of sound designers and other multimedia professionals with expertise in producing and designing audio for applications.
The dichotomy of skills between developer and sound designer naturally creates a dependent relationship. Unfortunately, this relationship can be quite inefficient for a numbdr of reasons. First, existing tools for interactive sound design are more complicated than desired for the average e skilled sound designer or other non-programmer. Thus, sound designers are completely dependent on developers for all experimentation, testing, and editing of their soundscapes. Second, the lack of tools for sound designers requires developers to spend time modifying code in order to make changes that are purely aesthetic in nature. Developers generally have many responsibilities in addition to the audio portion of an application, and therefore have little time to iterate with sound designers over aesthetic changes in the audio design. These first two problems create a third problem: audio designs cannot be created and modified simultaneously while code is being written. Therefore, the interactive sound and the non-audio design aspects of the application design are a linear process, rather than a parallel process. This inefficiency often results in higher costs for audio design and/or poorly implemented audio design.
Another significant problem for interactive media developers is the lack of media management tools for either the developer or the sound designer. Therefore, there exists a need for a tool that allows a sound designer to develop and test a soundscape. This tool should enable the sound designer to work independently of the developer of a media application, thereby allowing for the parallel development of the audio and non-audio portions of a media application.
The present invention is directed to providing a set of tools for designing and implementing interactive soundscapes based on existing audio files, such as waveform audio files, MIDI files, or audio streams. These tools allow the sound designer to work independently of, and in parallel with, the developer of a media application.
In accordance with an aspect of the invention, the tools include a user interface that enables a sound designer to create, test and modify a soundscape independently of the application.
In accordance with other aspects of the present invention, the user interface includes a media graph display that enables a sound designer to associate an existing sound file with a node. The media graph gives the sound designer the capability of connecting various nodes.
In accordance with yet other aspects of the present invention, the user interface includes: a control panel display that allows the sound designer to define controls, an action editor that allows the sound designer to associate sounds based on the controls, and a preview display that allows the sound designer to test the media graph using the controls and actions specified.
In accordance with further aspects of the present invention, application programming interface (API) calls are provided that allow the developer access to the soundscape defined by the sound designer.
In accordance with still further aspects of the invention, a run-time engine is provided that accesses the soundscape as specified by the APIs used in the application.